#ifndef TESTCASESBASE_H
#define TESTCASESBASE_H


class TestCasesBase {
  public:
    struct Output {
      virtual void AddLog( const wxString& logLine ) = 0;
      virtual bool StopTest() = 0;
    };
    TestCasesBase(): m_Out( 0 ) {}
    inline void InitOutput( Output& out ) { m_Out = &out; }
    virtual ~TestCasesBase() {}
    virtual bool PerformTests() = 0;
  protected:
    inline void AddLog( const wxString& logLine ) { m_Out->AddLog( logLine ); }
    inline bool StopTest() { return m_Out->StopTest(); }
  private:
    Output* m_Out;
};

#endif
